package com.huang.factory;

/**
 * 简单工厂模式
 * 优点：创建对象交给工厂类，客户端不用关心创建过程
 * 缺点：createProduct方法不够灵活，如果再创建一个产品，需要修改判断逻辑，不满足开闭原则。
 */
public class SimpleFactory {

    public static void main(String[] args) {
        Product product = SimpleFactory.createProduct("A");
        product.print();

    }


    public static Product createProduct(String type) {
        if ("A".equals(type)) {
            return new ProductA();
        } else if ("B".equals(type)) {
            return new ProductB();
        } else {
            return null;
        }
    }

}

abstract class Product {
    public abstract void print();
}

class ProductA extends Product {

    @Override
    public void print() {
        System.out.println("A产品");
    }
}

class ProductB extends Product {

    @Override
    public void print() {
        System.out.println("B产品");
    }
}
